--- valgrind-3.13.0/coregrind/m_replacemalloc/vg_replace_malloc.c
+++ valgrind-3.13.0/coregrind/m_replacemalloc/vg_replace_malloc.c
@@ -765,13 +765,15 @@ static void init(void);
       DO_INIT; \
       MALLOC_TRACE("realloc(%p,%llu)", ptrV, (ULong)new_size ); \
       \
-      if (ptrV == NULL) \
-         /* We need to call a malloc-like function; so let's use \
-            one which we know exists. */ \
-         return VG_REPLACE_FUNCTION_EZU(10010,VG_Z_LIBC_SONAME,malloc) \
-                   (new_size); \
+      if (ptrV == NULL) { \
+         TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(new_size); \
+         v = (void*)VALGRIND_NON_SIMD_CALL1( info.tl_malloc, new_size ); \
+         MALLOC_TRACE(" = %p\n", v ); \
+         return v; \
+      } \
       if (new_size <= 0) { \
-         VG_REPLACE_FUNCTION_EZU(10050,VG_Z_LIBC_SONAME,free)(ptrV); \
+         if (ptrV != NULL)  \
+            VALGRIND_NON_SIMD_CALL1( info.tl_free, ptrV ); \
          MALLOC_TRACE(" = 0\n"); \
          return NULL; \
       } \
